home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Light ROM 1
/
LIGHT-ROM 1 (Amiga Library Services)(1994).iso
/
ffdisks
/
d882.lha
/
GALer
/
GALer_english
/
Source
/
GALerSrcE.lha
/
GALer.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-28
|
9KB
|
367 lines
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef __STDIO_H
#include <stdio.h>
#endif
#define GAL16V8 1 /*GAL-Typ*/
#define GAL20V8 2
#define GAL16V8A 3
#define GAL20V8A 4
#define UNKNOWN 5
#define NOT_SPECIFIED 6
#define IC1 3 /*IC-Nummern*/
#define IC2 -1 /*IC2 nur für Elektor- und*/
#define IC3 0 /*Maxon-GAL-Brenner*/
#define IC4 1
#define IC5 2
#define IC6 0
#define IC7 1
#define IC10 10
#define ON 1 /*LED-Status*/
#define OFF 0
#define YES 1
#define NO 0
#define PROG 1 /*GAL-Modus*/
#define VERIFY 0
#define LOW 0
#define HIGH 1
#define EINGANG 0
#define AUSGANG 1
#define CONT_REQ 0 /* Requester-Typen*/
#define INFO_REQ 1
#define ERR_REQ 2
#define GALTYPE_REQ 3
#define ATYPE_REQ 4
#define ERASE_REQ 5
/*Dauer des STR-Impulses in*/
#define PROG_TIME1 80000L /*Mikrosekunden für pro-*/
#define PROG_TIME2 10000L /*grammieren*/
#define PROG_TIME3 40000L
#define PROG_TIME4 100000L
#define VERIFY_TIME 5L /*lesen*/
#define BULK_TIME 100000L /*Bulk-Erase*/
/*Spannung*/
#define V12_00 4 /*12.00 Volt*/
#define V14_00 3 /*14.00 Volt*/
#define V14_50 2 /*14.50 Volt*/
#define V15_75 1 /*15.75 Volt*/
#define V16_50 0 /*16.50 Volt*/
#define COPYGAL 1 /*für ProgJedecToGAL-Routine*/
#define PROGGAL 2
/*Voreinstellungen*/
struct Configuration { BYTE GALType; /*GALType = 16V8 od. 20V8*/
BYTE AType; /*TRUE=A; FALSE=normal*/
BYTE AutoAType; /*autom. A-Typ-Erkennung*/
BYTE GALTypeReq; /*TRUE=Requester für GAL-Typ*/
BYTE GenJedec; /*Jedec-File erstellen?*/
BYTE GenFuse; /*Fuse-File erstellen?*/
BYTE GenChip; /*Chip-File erstellen?*/
BYTE GenPin; /*Pin-File erstellen?*/
BYTE AutoSave; /*automatisch sichern?*/
BYTE AutoGAL; /*autom. GAL eistellen?*/
BYTE ProgEmptyTest; /*Leertest vor Prog.GAL*/
BYTE ProgVerify; /*Verify nach Prog.GAL*/
BYTE CopyEmptyTest; /*Leertest vor Copy-GAL*/
BYTE CopyVerify; /*Verify nach Copy-GAL*/
BYTE EraseEmptyTest; /*Leertest nach GAL-Löschen*/
BYTE JedecSecBit; /*Security-Bit des Jedec*/
BYTE JedecFuseChk; /*Fuse-Checksumme des Jedec*/
BYTE JedecFileChk; /*File-Checksumme des Jedec*/
};
struct JedecStruct { BYTE GALLogic[2560]; /*max. Größe der Fuse-Mat.*/
BYTE GALXOR [8]; /*XOR-Bits*/
BYTE GALSig [64]; /*Signatur*/
BYTE GALAC1 [8]; /*AC1-Bits*/
BYTE GALPT [64]; /*Produkttermfreigabe*/
BYTE GALSYN; /*SYN-Bit*/
BYTE GALAC0; }; /*AC0-Bit*/
/*GAL16V8*/
#define LOGIC16 0 /* Positionen der Bits in der*/
#define XOR16 2048 /* Jedec-Datei*/
#define SIG16 2056
#define AC116 2120
#define PT16 2128
#define SYN16 2192
#define AC016 2193
#define NUMOFFUSES16 2194
/*GAL20V8*/
#define LOGIC20 0 /* Positionen der Bits in der*/
#define XOR20 2560 /* Jedec-Datei*/
#define SIG20 2568
#define AC120 2632
#define PT20 2640
#define SYN20 2704
#define AC020 2705
#define NUMOFFUSES20 2706
#define LOGIC16_SIZE 2048 /*Anzahl der Bits für XOR usw.*/
#define LOGIC20_SIZE 2560
#define ROW_SIZE 64
#define XOR_SIZE 8
#define SIG_SIZE 64
#define AC1_SIZE 8
#define PT_SIZE 64
#define SYN_SIZE 1
#define AC0_SIZE 1
#define ACW_SIZE 82 /*Architektur-Kontroll-Wort*/
#define MAX_FUSE_ADR16 31 /*Adressen der GALs (für Fan-Post)*/
#define SIG_ADR16 32
#define MAX_FUSE_ADR20 39
#define SIG_ADR20 40
#define ACW_ADR 60
#define SECURITY_ADR 61
#define ERASE_ADR 63
#define MAX_OR 8 /*max. Anzahl der OR-Verknüpfungen*/
/*GAL-Assembler*/
/*Konstanten für den Assembler*/
#define ASSEMBLER 0 /*ganzes File assemblieren->Jedec*/
#define OPTIMIZER 1 /*nur bis zu den Gleichungen assem-*/
/*blieren (Optimizer)*/
struct Pin { BYTE p_Neg; /*Pin negiert?*/
BYTE p_Pin; }; /*Pinnummer*/
struct GAL_OLMC { BYTE Active; /*Ausgang negiert?*/
BYTE PinType; /*Eingang, komb. Ausgang...*/
BYTE TriCon; /*Tri.-Kontrolle angegeben?*/
BYTE FeedBack; }; /*Ausgang mit Rückkopplung?*/
#define ACTIVE_LOW 0 /*Pin High-aktiv*/
#define ACTIVE_HIGH 1 /*Pin Low-aktiv*/
/*PinType: */
#define NOTUSED 0 /*Pin (noch) nicht verwendet*/
#define NOTCON 0 /*Pin nicht verwendet*/
#define INPUT 2 /*Eingang*/
#define COMOUT 3 /*kombinatorischer Ausgang*/
#define TRIOUT 4 /*Tristate-Ausgang*/
#define REGOUT 5 /*Register-Ausgang*/
#define COM_TRI_OUT 6 /*entweder Tri. oder komb. Ausgang*/
/*TriCon:*/
#define NO_TRICON 0 /*kein Tri.-Kontrolle angegeben*/
#define TRICON 1 /*Tri.-Kontrolle angegeben*/
#define TRI_VCC 2 /*ständige Tristate-Freigabe*/
#define TRI_GND 3 /*ständig hochohmig*/
#define TRI_PRO 4 /*Tristate-Kontrolle über Produktterm*/
#define NC_PIN 30
#define MODE1 1 /*Betriebsmodi (SYN,AC0)*/
#define MODE2 2
#define MODE3 3
/*Konstanten für den Optimizer*/
#define NEGATION 0x80 /*Bit 7 = 1 wenn '/' vor Pinnamen*/
#define EQUASKIP 0xFE /*wird nicht beachtet*/
#define EQUAEND 0xFF /*Ende einer Gleichung*/
#define EQUASEND 0x00 /*Ende aller Gleichungen, bis zum*/
/*DESCRIPTION*/
#define ENTRY_SIZE 256 /*Anzahl der Einträge pro Puffer*/
#define SIZE_OF_EQUASTRING 80
/*Aus der Struktur Buffer wird*/
/*eine verkettete Liste aufgebaut,*/
/*in deren "Entries" entsprechende*/
/*Daten abgelegt werden*/
struct Buffer { struct Buffer *Next;
struct Buffer *Prev;
UBYTE Entries[ENTRY_SIZE]; /*hier werden z.B. die codier-*/
}; /*ten Gleichungen abgelegt*/
/*diese Struktur wird für Parameter*/
/*und für Ergebnisse von Funktionen*/
/*benötigt; sie enthält alle Infor-*/
/*mationen über den aktuellen Puffer*/
/*(siehe Equations-Struktur*/
struct ActBuffer { struct Buffer *ThisBuff; /*Zeiger auf aktuellen Puffer*/
UBYTE *Entry; /*Zeiger in das Entries-Feld*/
UBYTE *BuffEnd; /*Zeiger auf Pufferende*/
};
/* GALer.c */
void ExecuteMenu ();
void PAL_NTSC ();
int GetParPort ();
void FreeParPort ();
int GetTimer ();
void FreeTimer ();
void WaitForTimer ();
void OpenStuff ();
void CloseStuff ();
/* Port.asm */
void InitGALer ();
void EnableOutput ();
void DisableOutput ();
void InitParPort ();
void RestoreParPort ();
void WriteByte ();
int ReadByte ();
void SetGAL ();
void VeditOn ();
void VeditOff ();
void LED ();
void EnableVcc ();
void DisableVcc ();
void EnableVEdit ();
void DisableVEdit ();
void SetRow ();
void SDIn ();
int SDOut ();
void Clock ();
void STRImpuls ();
void EditMode ();
void ExitEditMode ();
void SetPV ();
void SetVolt ();
/* GAL2.c */
void GALInfo ();
int ReadGALParameter ();
int GALAType ();
UBYTE GetByte ();
/* GAL.c */
void ProgramGAL ();
void CopyGAL ();
void Leertest ();
int CheckGAL ();
void TestSecurity ();
void Compare ();
void PrintACW ();
void PrintSignature ();
int ProgJedecToGAL ();
void ReadGALToJedec ();
void SetSecurity ();
void Loeschen ();
void EraseIt ();
long FileSize ();
/* GALasm.c */
int AssembleInputFile ();
void SetAND ();
void IsPinName ();
int GetNextChar ();
int GetNextLine ();
void AsmError ();
void WriteChipFile ();
void WritePinFile ();
void WriteFuseFile ();
void WriteSpaces ();
/* Jedec.c */
void PutJedec ();
int FileChecksum ();
int FuseChecksum ();
int MakeJedecBuff ();
void WriteJedecFile ();
int SearchNextChar ();
int SearchNextAsterix ();
int GetJedec ();
void JedecError ();
/* Optimizer.c */
int SearchVar ();
int Optimizer ();
struct ActBuffer GetProdTermStart ();
void KillProdTerm ();
int OptimizeEqua ();
int Resolvente ();
int NumOfVar ();
int AddResolvente ();
int IsThereAProdTerm ();
int SearchVarProd ();
int WriteNewSource ();
int CopyEqua ();
int PrintEqua ();
int GetNext ();
int GetNextEqua ();
void PrintOptText ();
int ScrollRequester ();
int TranslateEqua ();
/* Pruefer.c */
void Pruefer ();
void SetPegel ();
void CheckOutput ();
void TogglePruefer ();
void DrawGAL ();
void DrawLeftPin ();
void DrawRightPin ();
void PrintPinNames ();
void ClearPinNames ();
/* Sub.c */
void Schreibverhalten ();
void JedecRequester ();
void About ();
int mystrcmp ();
int MyFileReq ();
int CompareRequester ();
int MyRequest ();
int AsmRequester ();
long FileSize ();
int ReadFile ();
void ErrorReq ();
void PrintText ();
void PrintErrorLine ();
void LoadConfig ();
void SaveConfig ();
void SetGALType ();
int AddByte ();
int AddString ();
void IncPointer ();
void DecPointer ();
void FreeBuffer ();
/* Reasm.c */
int CheckPinNames ();
int PinNameRequester ();
int RowActive ();
int OLMCOutput ();
int MakeEquation ();
int Reasm ();
void Reassembler ();
void ReasmError ();